package com.xyht.sca_s.student_manage_system.modules.welcomeNewStudent.entity.resp;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.Version;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xyht.sca_s.student_manage_system.modules.welcomeNewStudent.entity.SmsWnsChargeCategory;
import com.xyht.sca_s.student_manage_system.modules.welcomeNewStudent.entity.SmsWnsChargeOrgItem;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 收费计划学生缴费状态表
 * </p>
 *
 * @author XYHT
 * @since 2024-02-21
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("sms_wns_charge_plan_student_status")
@ApiModel(value = "SmsWnsChargePlanStudentStatus对象", description = "收费计划学生缴费状态表")
public class SmsWnsChargePlanStudentStatusResp implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "学生缴费状态id")
    private String id;

    @ApiModelProperty(value = "计划id")
    private String planId;

    @ApiModelProperty(value = "计划名")
    private String planName;

    @ApiModelProperty(value = "user_id")
    private String userId;

    @ApiModelProperty(value = "stu_id")
    private String stuId;

    @ApiModelProperty(value = "分类id")
    private String categoryId;

    @ApiModelProperty(value = "分类名")
    private SmsWnsChargeCategory category;

    @ApiModelProperty(value = "分类详情id")
    private String categoryDetailId;

    @ApiModelProperty(value = "分类详情名")
    private String categoryDetailName;

    @ApiModelProperty(value = "收费项id")
    private String chargeItemId;

    @ApiModelProperty(value = "收费项")
    private SmsWnsChargeOrgItem chargeItem;

    @ApiModelProperty(value = "是否必缴")
    private Boolean isNecessary;

    @ApiModelProperty(value = "应缴金额")
    private BigDecimal totalAmount;

    @ApiModelProperty(value = "欠费金额")
    private BigDecimal needPaymentAmount;

    @ApiModelProperty(value = "实缴金额")
    private BigDecimal paymentAmount;

    @ApiModelProperty(value = "支付时间")
    private Date paymentTime;

    @ApiModelProperty(value = "助学金分配金额")
    private BigDecimal grantAmount;

    @ApiModelProperty(value = "线下缴费金额")
    private BigDecimal offlineAmount;

    @ApiModelProperty(value = "线下缴费方式(0.未知 1.微信 2.支付宝 3.现金 4.混合支付)")
    private Integer offlineMethod;

    @ApiModelProperty(value = "线下操作人user_id")
    private String offlineOperatorUserId;

    @ApiModelProperty(value = "是否缴齐")
    private Boolean isPaid;

    @ApiModelProperty(value = "版本号")
    @TableField("version")
    @Version
    private Integer version;

    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;


}
